1690B - Array Decrements - CodeForces Solution


greedy implementation *800

Please click on ads to support us..

Python Code:

for _ in range(int(input())):
    n = int(input())
    A = list(map(int,input().split()))
    B = list(map(int,input().split()))
    for i in range(n):
        if B[i]!=0:
            diff = A[i]-B[i]
            break
    else:
        print("YES")
        continue
    if diff<0:
        print("NO")
        continue
    for j in range(n):
        if B[j]!=0:
            if A[j]-B[j] != diff:
                print("NO")
                break
        else:
            if A[j]>diff:
                print("NO")
                break
    else:
        print("YES")

C++ Code:

#include <bits/stdc++.h>
#define dd  cout<<  fixed << setprecision(15)
#define int long long
#define sz(x) ((int)(x.size()))
#define all(x) x.begin(),x.end()
#define no cout << "NO\n";
#define yes cout << "YES\n";
#define T int t;cin>>t;while(t--)
#define PP cout<<

using namespace std;
const int N=99999+5;
int  a[N];
int b[N];
set<int>s;
vector<pair < int , int > >v;
pair<int ,int > p[1000];
int32_t main()
{
    T
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++)cin>>a[i];
         for(int i=0;i<n;i++)cin>>b[i];
         int f=0;
         int x=0;
          for(int i=0;i<n;i++)
          {
              if(a[i]<b[i])
              {
                  f=1;
                  break;
              }
              x=max(x,a[i]-b[i]);
          }
          if(f)
              cout<<"NO\n";
        else
        {
            for(int i=0;i<n;i++)
            {
                if(b[i]==0)
                {
                    continue;
                }
                else
                {
                    if(a[i]-b[i]!=x)
                    {
                        f=1;
                        break;
                    }
                }
            }
            if(f)
                cout<<"NO\n";
            else
            cout<<"YES\n";

    }
    }
return 0;
}


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST